package com.fs.robot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.api.domain.vo.AlertDetailVO;
import com.fs.api.domain.vo.RobotVO;
import com.fs.api.enumeration.RobotStatus;
import com.fs.common.domain.PageVO;
import com.fs.common.domain.Result;
import com.fs.robot.domain.dto.RobotCreateDTO;
import com.fs.robot.domain.po.Robot;
import com.fs.robot.domain.vo.BatteryDistributionVO;
import com.fs.robot.domain.vo.RobotDetailVO;
import com.fs.robot.domain.vo.RobotOverviewVO;
import com.fs.robot.domain.vo.RobotStatusDistributionVO;

import java.util.List;

public interface IRobotService extends IService<Robot> {
    PageVO<RobotVO> getRobotsPage(Integer pageNum, Integer pageSize);


    RobotDetailVO getRobotStatus(Long robotId);

    void createRobot(RobotCreateDTO robotCreateDTO);

    List<RobotVO> getLowBatteryRobots();

    List<RobotVO> getRobotsByIds(List<Long> robotIds);

    RobotOverviewVO getRobotOverview();

    List<RobotStatusDistributionVO> getRobotStatusDistribution();

    PageVO<RobotVO> queryIdleRobots(Integer page, Integer size, String name);

    void updateRobotStatus(Long id, RobotStatus robotStatus);

    Integer getRobotCount(RobotStatus status, Integer batteryThreshold);

    void chargeRobot(Long id, Integer batteryLevel);

    Long getAlertIdsByRobotId(Long robotId);

    void updateRobotLocation(Long robotId, String location);

    BatteryDistributionVO getBatteryDistribution();
}
